package com.minarto.display.ui.list {
	/**
	 * ...
	 * @author minarto
	 */
	public class ListManager implements IListManager
	{
		private var _list:Array = [];
		
		public function length():uint {
			return	_list.length;
		}
		
		public function getItemIndex($item:*):int {
			var i:int;
			
			i = _list.length;
			while (i -- ) {
				if (_list[i] === $item) {
					return	i;
				}
			}
			
			return	i;
		}
		
		
		public function getItemAt($index:int):* {
			return	_list[$index];
		}
		
		
		public function addItem($item:*):* {
			_list.push($item);
			
			return	$item;
		}
		
		
		public function addItemAt($item:*, $index:int):* {
			_list.splice($index, 0, $item);
			
			return	$item;
		}
		
		
		public function delItem($item:*):* {
			var i:uint;
			
			i = _list.length;
			while (i --) {
				if ($item === _list[i]) {
					_list.splice(i, 1);
					break;
				}
			}
			
			return	$item;
		}
		
		
		public function delItemAt($index:int):* {
			return	_list.splice($index, 1)[0];
		}
		
		
		public function delItemAll():void {
			_list.length = 0;
		}
	}

}